Simple decoding method and apparatus

ABSTRACT

The invention relates to a method of decoding possibly mutilated codewords (r) of a code (C) into information words (m′) comprising information symbols (m′ 1 , m′ 2 , . . . ,m′ k ), said information words (m) being encoded into codewords (c) of said code (C). In order to provide a method and apparatus for decoding such a code without the need to considerably deviate from the standard method and apparatus for decoding a standard Reed-Solomon code, a method of decoding is proposed according to the present invention, comprising the steps of: decoding said possibly mutilated codewords (r) into codewords (r′)′, reconstructing information symbols (m′ 1 , m′ 2 , . . . ,m′ k ) from said codewords (r′), comparing said reconstruct information symbols (m′ 1 , m′ 2 , . . . ,m′ k ) with information symbols (m 1 ) known a priori before decoding, and verifying decoding errors based on the result of said comparison.

The invention relates to a method and a corresponding apparatus for decoding possibly mutilated codewords of a code into information words and to a computer program implementing said method.

In European patent application EP 01 201 841.2 (PHNL 10331), the content of which is herein incorporated by reference, a method is described that allows to enhance the error correcting capabilities of an error correcting code (ECC) if some of the information symbols are known to the decoder. A possible application is in the field of address retrieval on optical media The sector address on optical media is part of a header which is protected by an error correcting code. Under many circumstances, much of the header information of the current sector can be inferred from the previously read sectors and the table of contents, or from the knowledge where the reading or writing head will approximately land.

In European patent application EP 01 203 147.2 (PHNL 10600), the content of which is also herein incorporated by reference, a method of encoding address words into codewords of a code is described. The described code provides an enhanced error correction power since it allows to benefit from approximate knowledge of the landing place of the reading or writing head even on places where many, or even all, bits of consecutive sector addresses change. This is achieved by encoding the address words into information words such that address words comprising addresses being close to each other share a plurality of information symbols and that said information words are then encoded into codewords using a generator matrix selected such that the minimum Hamming distance of at least one subcode of said code is larger than the minimum Hamming distance of said code and that a subcode generator matrix of said subcode derives from said generator matrix of said code by omitting the at least one row from said generator matrix corresponding to said at least one a priori known information symbol.

For decoding the codewords encoded according to the methods described in the above mentioned patent applications a standard Reed-Solomon (RS) decoder can not be used, but a special decoder has to be provided to make use of the enhanced error correction capabilities. Thus, standard playback or recording apparatuses can not make use of such a code or can not even decode it at all. Further, new decoders have to be designed and implemented in new playback or recording apparatuses.

It is therefore an object of the present invention to provide a method and apparatus for decoding such a code without the need to considerably deviate from the standard method and apparatus for decoding a standard Reed-Solomon code.

This object is achieved according to the present invention by a method of decoding possibly mutilated codewords of a code into information words comprising information symbols, said information words being encoded into codewords of said code, according to claim 1, which comprises the steps of:

-   -   decoding said possibly mutilated codewords into codewords,     -   reconstructing information symbols from said codewords,     -   comparing said reconstruct information symbols with information         symbols known a priori before decoding, and     -   verifying decoding errors based on the result of said         comparison.

The present invention is based on the idea that based on the mathematical code properties it can still be identified in an error correcting code if there has been made a miscorrection using a standard RS decoder by comparing the reconstructed information symbols, i.e. the reconstructed user information, with the a priori known information symbols available at the decoder. If the decoder has made a correction error which is within the error correcting capabilities of the code, there is a high probability that there will appear discrepancies between the reconstructed information symbols and the a priori known information symbols leading to a negative verification result.

Preferred embodiments of the invention are defined in the dependent claims. Preferably the reconstruction of information symbols is implemented by some simple hardware, e.g. similar to the hardware used for syndrome formation.

The invention is generally applicable for any systematic code for the detection of correction errors. However, the invention is advantageously applied for decoding code as described in the above mentioned European patent applications EP 01 201 841.2 (PHNL 10331) and EP 01 203 147.2 PHNL 10600) which provide an extra Hamming distance if some information symbols are known a priori to the decoder. However, it is assumed that the encoder is not informed about which, if any, symbols are actually known to the decoder.

To get such an enhancement of the effective Hamming distance a certain predefined (i.e. previously selected) generator matrix is used. Said predefined generator matrix is then used for encoding and decoding, i.e. it needs to be used as a standard generator matrix. In other words, the generator matrix is selected such that the minimum Hamming distance of a subcode is larger than the minimum Hamming distance of the complete code.

The concept of using a generator matrix for encoding information words into codewords is widely used and known, e.g. from Richard E. Blahut “Theory and Practice of Error-Control Codes”, Addison Wesley, May 1984, Sec. 3.2. Such a generator matrix is particularly used and described in standards, like the CD audio standard.

When using said predefined generator matrix, address information can be protected more reliably. If part of the address information, e.g. the most significant bits, is already known to the decoder if a new command to access a certain address on a data carrier, e.g. a disk, is given, address retrieval is more reliable which is especially important during writing. The decoder can then effectively use a subcode having an increased minimum Hamming distance. However, if no information symbols are known to the decoder a priori, decoding of the retrieved codeword is possible as usual and the Hamming distance of the code used according to the invention will be the same as the Hamming distance of known codes, i.e. no subcode with a larger minimum Hamming distance can be used during decoding.

Preferably, address words are encoded into information words such that address words comprising addresses being close to each other share a plurality of information symbols. Such address words are preferably wobble addresses, e.g. addresses encoded in a secure subchannel known as wobble channel, as it is used in Digital Video Recording (DVR).

Because of address pre-processing during encoding, only one of the information symbols will change if an address is incremented, e.g. only one of the information symbols will change at a time when jumping from the inside to the outside of a disk. Therefore, if the jump accuracy is such that that the address of the actual landing place differs at most k from the address of the target landing place, at least k−1 information symbols will be known for every jump on a disk.

An apparatus for decoding a possibly mutilated codeword according to the invention is defined in claim 8. A computer program according to the invention for implementing the method according to the invention is defined in claim 9.

The invention is preferably applied for decoding data read from a data carrier storing audio, video or software data, which data carrier might be of a recordable or rewriteable type, in particular an optical record carrier like a CD or a DVD. A particular application of the invention lies in the field of optical recording, particularly as proposed in the standard for DVR (digital video recording), preferably in the field of encoding wobble addresses in DVR

The invention will now be further explained in more detail with reference to the drawings, in which:

FIG. 1 shows the conventional format of a codeword,

FIG. 2 shows a block diagram of the encoding and decoding scheme,

FIG. 3 shows a block diagram of an apparatus for encoding information words,

FIG. 4 shows a block diagram of an apparatus for decoding according to the invention,

FIG. 5 shows a block diagram of another embodiment of the encoding and decoding scheme according to the invention.

FIG. 1 shows the typical scheme of codewords c of a [n, k] block code, e.g. a Reed-Solomon-Code. A codeword comprises an information word m comprising k information symbols and a parity word p comprising n-k parity symbols generated when encoding said information word m into a codeword c.

FIG. 2 shows a block diagram of a typical system using encoding and decoding. Therein user data, e.g. audio or video data, coming from a data source 1, e.g. recorded on a master tape or master disk, are encoded before they are stored on a data carrier, e.g. a disk, or transmitted over a transmission channel, e.g. over the internet, before they are again decoded for forwarding them to a data sink 9, e.g. for replaying them.

As can be seen the user data of the source 1 are first encoded by a source encoder 2, then error correction encoded by an ECC encoder 3 and thereafter modulated by a modulator 4, e.g. an EFM modulator, before the encoded user data—the codewords—are put on the channel 5 on which errors may be introduced into the codewords. The channel 5 shall here interpreted broadly, including a transmission channel as well as storage of the encoded data on a data carrier for a later replay.

When replay of data is intended, the encoded data first have to be demodulated by a demodulator 6, e.g. an EFM demodulator, before they are error correction decoded by an ECC decoder 7 and source decoded by a source decoder 8. Finally the decoded user data can be input to the sink 9, e.g. a player device for replay of the user data.

Such a general system is, however, not only used for encoding and decoding user data, but may as well be used for any kind of data like management data, in particular address data. Such address data are used to find a certain location on a data carrier or in a data stream of user data. On recordable or rewriteable disks such address data are generally prerecorded on the empty disks before any user data are recorded.

The present invention refers to decoding of data. According to a preferred embodiment a certain predetermined generator matrix is used. A particular application of the invention lies in the field of address retrieval of addresses used on optical record carriers.

FIG. 3 shows an embodiment of an apparatus for encoding information words m as described in the above mentioned two European patent applications EP 01 201 841.2 (PHNL 10331) and EP 01 203 147.2 (PHNL 10600). Therein the encoding apparatus 10 comprises an encoding unit 11 for encoding the information words m comprising a fixed number of information symbols m₁, m₂, . . . , m_(k) into codewords c of a code C. To achieve an improved error correction capacity a certain predefined generator matrix G is used for encoding the information words m. This generator matrix G is selected and defined once by a selection unit 12 and then provided or preferably stored in the encoding apparatus 10 and the decoding apparatus for continuous use.

By use of the generator matrix G the information words m are thus encoded into codewords c by the encoding unit 11. These codewords c can be provided to a writing unit 13 recording the codewords c on an optical record carrier 14, e.g. on a CD or a DVD.

By way of an example the preferred selection of the generator matrix G shall be explained in more detail. The example is based on the [7, 4, 3] binary Hamming code C generated by g(x)=X³+X+1. At first the “normal” known use of the code shall be explained while thereafter the use of a code according to the invention shall be explained.

Usually, the code C is used in systematic form, which corresponds to a generator matrix $G_{sys} = \begin{pmatrix} 1 & 0 & 0 & 0 & 1 & 0 & 1 \\ 0 & 1 & 0 & 0 & 1 & 1 & 1 \\ 0 & 0 & 1 & 0 & 1 & 1 & 0 \\ 0 & 0 & 0 & 1 & 0 & 1 & 1 \end{pmatrix}$ having four (in general k) rows and seven (in general n) columns. An information word m=(m₁, m₂, m₃, m₄) is mapped onto the codeword c=m·G_(sys). If the i-th information symbol m_(i) is known to the decoder prior to decoding, the decoder can subtract the contribution of m_(i) to the received word r prior to decoding. This means that the decoder decodes the residual received word r−m_(i)·G_(sys) ^(i), where G_(sys) ^(i) indicates the i-th row of G_(sys), to a code where the i-th row is removed from the generator matrix G_(sys). The knowledge of up to any three information bits does not alter significantly the correction capacity for the unknown information bits, since almost all subcodes C′ of the code C obtained by deleting at most three rows of G_(sys) still have Hamming distance three. Only if the information bits m₁, m₃ and m₄ are known, the Hamming distance for retrieving m₂ is increased to four.

According to the present invention, another generator matrix G_(id) for the same code C may be given as $G_{id} = {\begin{pmatrix} 1 & 1 & 1 & 1 & 1 & 1 & 1 \\ 0 & 1 & 0 & 0 & 1 & 1 & 1 \\ 1 & 1 & 0 & 1 & 0 & 0 & 1 \\ 1 & 1 & 1 & 0 & 1 & 0 & 0 \end{pmatrix} = {\begin{pmatrix} g_{1} \\ g_{2} \\ g_{3} \\ g_{4} \end{pmatrix}.}}$ If the (non-systematic) generator matrix G_(id) is used for the encoding of the code C, an informed decoder as described in EP 01 201 841.2 (PHNL 10331) and EP 01 203 147.2 (PHNL 10600) can decode to more favourable subcodes C′ of the code C if certain information bits or information symbols—an information symbol may comprise more than one bit—are known. For example, if the decoder knows the first information bit m₁ it can use the subcode C′ generated by the last three rows g₂, g₃, g₄ of G_(id), which corresponds to a [7, 3, 4] simplex code. As another example, if the last three bits m₂, m₃, m₄ are known to the decoder, it can exploit the subcode generated by the first row of G_(id) which corresponds to the [7, 1, 7] repetition code, thus enabling the decoder to recover m₁ reliably even in the presence of three bit errors.

An apparatus for decoding a read possibly mutilated codeword r is shown in FIG. 4. Therein the decoding apparatus receives the possibly mutilated codeword r. It is assumed that a received word r(x) comprising symbols r₀, r₁, . . . , r₁₁ which has e.g. been read from a data carrier is a possibly mutilated codeword, i.e. includes a codeword c plus noise n. From the received word r syndromes S_(j) are computed according to a known method in a syndrome forming unit 30 wherein it holds that S_(j)=c(α^(j))+n(α^(j))=n(α^(j)) for 0≦j≦4 and S_(j)=n(α^(j))+m_(j) for 5≦j≦10. syndromes S as well as the received codewords r are then inputted into an error pattern calculation unit 31 of a known type for calculating error locations and error values to obtain the coefficients r′₀, r′₁, . . . , r′₁₁ of the codeword r. In a practical realization said error pattern calculation unit 31 may comprise a unit for solving a key equation and a unit for implementing a Chien search and Forney algorithm. The units 30 and 31 together form a standard RS decoder.

The obtained codeword coefficients r′₀, r′₁, . . . , r′₁₁ are then used to extract all information symbols m′₁, m′₂, . . . , m′_(k) in a reconstruction unit 32, e.g. by using a simple hardware for reconstruction, preferably similar to the unit 30 for syndrome formation.

Part of the obtained information symbols m′₁, m′₂, . . . , m′_(k) are thereafter compared to the a priori known information symbols, in the example to information symbol m₁, by comparator 33, i.e. the obtained information symbol m′₁ is compared to the a priori known information symbol m₁. This comparison allows a verification in unit 34 if any errors have been occurred during decoding since there is a high probability that there appear discrepancies between the reconstructed information symbols and the a priori known information symbols if decoding errors are made.

If the verification leads to a positive result (36) the reconstructed information symbols m′₁, m′₂, . . . , m′_(k) are outputted, while in the negative case (35) error correction could be repeated or, alternatively, an enhanced error correction could be performed taking into account the a priori known information symbols as described in EP 01 201 841.2 (PHNL 10331) and EP 01 203 147.2 (PHNL 10600) using a special informed decoder 37, finally generating the correct information symbols m′₁, m′₂, . . . , m′_(k).

For further detail regarding different methods of encoding leading to different codes providing an enhanced error correcting capability reference is made to EP 01 201 841.2 (PHNL 10331) and EP 01 203 147.2 (PHNL 10600). For decoding of all these codes the invention is applicable.

A block diagram of another embodiment of the encoding and decoding scheme according to the invention is shown in FIG. 5. Therein address words a comprising k address symbols a₀, a₁, . . . , a_(k−1) are fed into an encoder 60 comprising an address pre-processing unit 61 and an RS encoder 62. By the address pre-processing unit 61 the address words a are encoded into information words m comprising k information symbols m₀, m₁, . . . , m_(k−1) such that only one information symbol changes at a time when the address is incremented: This is achieved by applying a Gray Code, preferably by inverting an information symbol a; when the least significant bit of the previous symbol a_(i−1) has bit value one. The information words m are thereafter encoded into codewords c by the RS encoding unit 62.

The decoding method for the present ECC scheme is almost similar to the situation where a usual (systematic) RS code is used. If a possibly mutilated codeword r is read from the data carrier 63 (or is received via a transmission line) it is first decoded by a standard RS decoder 64. In this particular way of decoding, the knowledge of some information symbols is only (implicitly) used as an additional check after decoding. It is also possible to use this knowledge by trying to correct more errors than can be done without this knowledge as explained above.

The obtained intermediate codewords r′ are then input into a post-processing unit 65 comprising an RS post-processing unit 66 and an address post-processing unit 67. In the RS post-processing unit 66 the information symbols m′₁ can be obtained by evaluating the intermediate codeword r′ in the zero corresponding to the information symbol, i.e. by syndrome calculation. In the address post-processing unit 67 the address words a can thereafter be obtained from the information symbols m′. The post-processing unit 67 therein corresponds to elements 32 to 37 of the apparatus shown in FIG. 4.

The advantage of using the described ECC scheme is that the distance of the code can be increased when part of the address is known before decoding. It is however a drive option to actually use this prior knowledge. If this knowledge is not there this step can be skipped, which gives the usual decoding procedure with some post-processing to calculate the address from the intermediate codeword. The invention is particularly applicable for decoding codewords into which addresses are encoded, preferable wobble addresses as used in Digital Video Recording (DVR). Therein a [15,9,7] RS code is preferably used. Regarding more details of certain applications, reference is made to EP 01 203 147.2 (PHNL 10600). 

1. Method of decoding possibly mutilated codewords (r) of a code (C) into information words (m′) comprising information symbols (m′₁, m′₂, . . . ,m′_(k)), said information words (m) being encoded into codewords (c) of said code (C), comprising the steps of: decoding said possibly mutilated codewords (r) into codewords (r′), reconstructing information symbols (m′₁, M′₂, . . . ,m′_(k)) from said codewords (r′), comparing said reconstruct information symbols (m′₁, m′₂, . . . ,m′_(k)) with information symbols (m₁) known a priori before decoding, and verifying decoding errors based on the result of said comparison.
 2. Method according to claim 1, wherein said information symbols are reconstructed by syndrome forming.
 3. Method according to claim 1, wherein said information words (m) are encoded into said codewords (c) using a generator matrix (G) providing an enhanced error correction capability if at least one information symbol (m′₁) is known a priori before decoding.
 4. Method according to claim 3, wherein said generator matrix (G) is selected such that the minimum Hamming distance of at least one subcode (C′) of said code (C) is larger than the minimum Hamming distance of said code (C) and that a subcode generator matrix (G′) of said subcode (C′) derives from said generator matrix (G) of said code (C) by omitting the at least one row from said generator matrix (G) corresponding to said at least one a priori known information symbol (m′₁).
 5. Method according to claim 3, wherein the contribution of said at least one a priori known information symbol (m₁) included in said possibly mutilated codeword (r) is taken into account for decoding said possibly mutilated codeword (r) with enhanced error correcting capabilities.
 6. Method according to claim 1, wherein address word (a) are encoded into said information symbols (m) such that address words (al) comprising addresses being close to each other share a plurality of information symbols.
 7. Method according to claim 6, wherein said method is used for encoding address words used in Digital Video Recording (DVR), in particular for encoding address words of wobble addresses.
 8. Apparatus for decoding possibly mutilated codewords (r) of a code (C) into information words (m′) comprising information symbols (m′₁, m′₂, . . . ,m′_(k)), said information words (m) being encoded into codewords (c) of said code (C), comprising: means for decoding said possibly mutilated codewords (r) into codewords (r′), means for reconstructing information symbols (m′₁, m′₂, . . . ,m′_(k) from said codewords (r′), means for comparing said reconstruct information symbols (m′₁, m′₂, . . . , m′_(k)) with information symbols (m₁) known a priori before decoding, and means for verifying decoding errors based on the result of said comparison.
 9. Computer program comprising program code means for causing a computer to perform the steps of the method of claim 1 when said computer program is run on a computer. 